package persistencia;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import util.Conexion;
import bean.Estilo;

public class EstiloDAO {

	public List<Estilo> listar() throws SQLException{
		List<Estilo> listado = new ArrayList<Estilo>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT id,estilo,situacion " +
				"FROM tbl_estilo");
		ResultSet rs = pstm.executeQuery();
		while(rs.next()){
			Estilo estilo = new Estilo();
			estilo.setId(rs.getInt("id"));
			estilo.setEstilo(rs.getString("estilo"));
			estilo.setSituacion(rs.getString("situacion"));
			listado.add(estilo);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Estilo> buscarPorEstilo(String filtro,String situacion) throws SQLException{
		List<Estilo> listado = new ArrayList<Estilo>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT id,estilo,situacion " +
				"FROM tbl_estilo WHERE situacion in ("+situacion+") and estilo like ?");
		pstm.setString(1, filtro + "%");	
		ResultSet rs = pstm.executeQuery();
		while (rs.next()) {
			Estilo estilo = new Estilo();
			estilo.setId(rs.getInt("id"));
			estilo.setEstilo(rs.getString("estilo"));
			estilo.setSituacion(rs.getString("situacion"));
			listado.add(estilo);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Estilo> buscarPorEstilo(String filtro) throws SQLException{
		List<Estilo> listado = new ArrayList<Estilo>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT id,estilo,situacion " +
				"FROM tbl_estilo WHERE estilo = ?");
		pstm.setString(1,filtro);	
		ResultSet rs = pstm.executeQuery();
		while (rs.next()) {
			Estilo estilo = new Estilo();
			estilo.setId(rs.getInt("id"));
			estilo.setEstilo(rs.getString("estilo"));
			estilo.setSituacion(rs.getString("situacion"));
			listado.add(estilo);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public int insertar(Estilo estilo) throws SQLException{
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
		"insert into tbl_estilo (estilo,situacion,usuario_creacion,fecha_creacion) values (?,?,?,?)");
		pstm.setString(1, estilo.getEstilo());
		pstm.setString(2, estilo.getSituacion());
		pstm.setString(3, estilo.getUsuario_creacion());
		pstm.setInt(4, estilo.getFecha_creacion());
		int resultado = pstm.executeUpdate();
		pstm.close();
		return resultado;
	}
	
	public int actualizar(Estilo estilo) throws SQLException{
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
		"update tbl_estilo set estilo = ?,situacion = ?,usuario_modificacion = ?,fecha_modificacion = ? where id = ?");
		pstm.setString(1, estilo.getEstilo());
		pstm.setString(2, estilo.getSituacion());
		pstm.setString(3, estilo.getUsuario_modificacion());
		pstm.setInt(4, estilo.getFecha_modificacion());
		pstm.setInt(5, estilo.getId());
		int resultado = pstm.executeUpdate();
		pstm.close();
		return resultado;
	}
	
}
